package com.anXin.model.article.pojos;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.ibatis.type.Alias;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 文章信息表，存储已发布的文章
 * </p>
 *
 * @author itqingyun
 */

@Data
@TableName("anxin_article")
public class Article implements Serializable {

    /*@TableId(value = "id",type = IdType.ID_WORKER)
    private Long id;


    *//**
     * 标题
     *//*
    @TableField("title")
    private String title;

    *//**
     * 频道
     *//*

    private Integer ChannelId;


    private String ChannelName;
    *//**
     * 作者id
     *//*
    @TableField("author_id")
    private Long authorId;

    *//**
     * 作者名称
     *//*
    @TableField("author_name")
    private String authorName;
    *//**
     * 文章频道id
     *//*
    @TableField("channel_id")
    private Long channelId;
    *//**
     * 文章频道名称
     *//*
    @TableField("channel_name")
    private String channelName;



    *//**
     * 文章布局  0 无图文章   1 单图文章    2 多图文章
     *//*
    @TableField("layout")
    private Short layout;



    *//**
     * 文章封面图片,多张逗号分隔
     *//*
    @TableField("images")
    private String images;

    *//**
     * 标签
     *//*

    @TableField("labels")
    private String labels;

    *//**
     * 点赞数量
     *//*
    @TableField("likes")
    private Integer likes;

    *//**
     * 收藏数量
     *//*
    @TableField("collection")
    private Integer collection;



    *//**
     * 创建时间
     *//*
    @TableField("created_time")
    private Date createdTime;*/




    /**
     * 主键
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 自媒体用户ID
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @TableField("author_id")
    private Long authorId;

    /**
     * 标题
     */
    @TableField("title")
    private String title;
    /**
     * 作者昵称
     */
    @TableField("author_name")
    private String authorName;
    /**
     * 图文频道ID
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @TableField("channel_id")
    private Long channelId;

    /**
     * 频道名称
     */
    @TableField("channel_name")
    private String channelName;


    /**
     * 文章布局
     0 无图文章
     1 单图文章
     3 多图文章
     */
    @TableField("layout")
    private Short layout;
    /**
     * //图片用逗号分隔
     */
    @TableField("images")
    private String images;

    /**
     * 标签
     */
    @TableField("labels")
    private String labels;
    /**
     * 点赞数量
     */
    @TableField("likes")
    private Integer likes;

    /**
     * 收藏数量
     */
    @TableField("collection")
    private Integer collection;
    /**
     * 创建时间*/
    @TableField(fill = FieldFill.INSERT)
    private Date createdTime;



    /**
     * 当前状态
     0 草稿
     1 提交（待审核）
     2 审核失败
     3 人工审核
     4 人工审核通过
     8 审核通过（待发布）
     9 已发布
     */
    @TableField("status")
    private Short status;

    /**
     * 定时发布时间，不定时则为空*/
    @TableField("publish_time")
    private Date publishTime;

    /**
     * 拒绝理由
     */
    @TableField("reason")
    private String reason;

   /* *
     * 发布库文章ID
    @TableField("article_id")
    private Long articleId;
*/

    /**
     * 上架状态：1为上架0为下架
     */
    @TableField("enable")
    private Short enable;
    /**
     * 提交时间*/
    @TableField("submited_time")
    private Date submitedTime;
    /**
     *文章内容
     */
    private String content;

    @TableField(exist = false)
    private Integer likeCount;

    @TableField(exist = false)
    private Boolean isLike;

    @TableField(exist = false)
    private Integer collectionCount;

    @TableField(exist = false)
    private Boolean isCollection;


    //状态枚举类
    @Alias("WmNewsStatus")
    public enum Status{
        NORMAL((short)0),SUBMIT((short)1),FAIL((short)2),ADMIN_AUTH((short)3),ADMIN_SUCCESS((short)4),SUCCESS((short)8),PUBLISHED((short)9);
        short code;
        Status(short code){
            this.code = code;
        }
        public short getCode(){
            return this.code;
        }
    }







}
